package models;

import java.util.ArrayList;
import java.util.List;

import javax.persistence.CascadeType;
import javax.persistence.Entity;
import javax.persistence.ManyToMany;
import javax.persistence.OneToOne;

import play.data.validation.Required;

/**
 * Ejemplos de platos completos serían:
 * 
 * nombre,		usuario			alimentos[]
 * ("Pollito")	(Usuario1)		{(Pollo al horno), (Papas fritas)}
 * 
 * */
@Entity
public class Plato extends Comible {
	
	@Required
	@OneToOne
	private Usuario usuario;
	
	@ManyToMany(cascade = CascadeType.PERSIST)
	private List<Alimento> alimentos;
	
	public Plato(String nombre) {
		super(nombre);
		this.alimentos = new ArrayList<Alimento>();
	}
	
	public void agregarAlimento(Alimento alimento) {
		getAlimentos().add(alimento);
	}
	
	@Override
	protected Integer calcularCalorias() {
		Integer calorias = 0;
		for (Alimento alimento : getAlimentos()) {
			calorias += alimento.getCaloriasPorPorcion();
		}
		return calorias;
	}
	
	public List<Alimento> getAlimentos() {
		return alimentos;
	}
	
	public void setAlimentos(List<Alimento> alimentos) {
		this.alimentos = alimentos;
	}

	public Usuario getUsuario() {
		return usuario;
	}

	public void setUsuario(Usuario usuario) {
		this.usuario = usuario;
	}
}
